from timeit import Timer

import sys
import math


def Problem():
    """
    Starting with the number 1 and moving to the right in a clockwise 
    direction a 5 by 5 spiral is formed as follows:
    
    21 22 23 24 25
    20  7  8  9 10
    19  6  1  2 11
    18  5  4  3 12
    17 16 15 14 13
    
    It can be verified that the sum of both diagonals is 101.
    
    What is the sum of both diagonals in a 1001 by 1001 spiral 
    formed in the same way?
    """

    #We can create the spiral and save only the required values
    num = 1
    left, right = [], []
    for size in xrange(2, 1002, 2):
        num += size
        left.append(num)
        num += size
        right.append(num)
        num += size
        left.append(num)
        num += size
        right.append(num)
        
    #Don't forget the first number
    ans = sum(left) + sum(right) + 1
    
    print "Answer for Problem 28 = %d" % (ans,)
    
    
if __name__ == "__main__":
    t = Timer(setup='from __main__ import Problem', stmt='Problem()').timeit(1)
    print "Execution time = %0.3f seconds" %(t,)